Skip to content

Conversation

@afranken
Copy link
Member

Description

  • Changelog for 4.10.0

Related Issue

Tasks

  • I have signed the CLA.
  • I have written tests and verified that they fail without my change.

@afranken afranken force-pushed the 4.10.0-maintenance branch 2 times, most recently from 0caadbe to 4ed6065 Compare October 1, 2025 21:55
@afranken afranken self-assigned this Oct 7, 2025
@afranken afranken mentioned this pull request Nov 3, 2025
2 tasks
@afranken afranken added the bug label Nov 3, 2025
@afranken afranken requested a review from Copilot November 3, 2025 15:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates the AWS SDK v2 from version 2.33.12 to 2.37.2, adapts to breaking API changes in the SDK, and adds support for unquoted ETags in conditional request headers.

  • Updates ChecksumTrailerProvider constructor to include new required parameters for AWS SDK v2 compatibility
  • Adds support for unquoted ETags in if-match and if-none-match headers to match S3 behavior
  • Updates changelog with release notes for version 4.10.0

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
pom.xml Bumps AWS SDK v2 from 2.33.12 to 2.37.2
server/src/test/kotlin/com/adobe/testing/s3mock/ChecksumTestUtil.kt Adapts ChecksumTrailerProvider constructor call to new API with additional parameters
server/src/main/java/com/adobe/testing/s3mock/service/ObjectService.java Implements unquoted ETag handling in if-match and if-none-match conditional headers
integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/GetPutDeleteObjectIT.kt Adds integration tests for unquoted ETag support in conditional headers
CHANGELOG.md Updates changelog to document version 4.10.0 release and associated changes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

var setMatch = match != null && !match.isEmpty();
if (setMatch) {
if (match.contains(WILDCARD_ETAG) || match.contains(WILDCARD) || match.contains(etag)) {
var unquotedEtag = etag.replace("\"", "");
Copy link

Copilot AI Nov 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The unquotedEtag is computed even when it might not be needed. Consider computing it only when the initial checks with the quoted etag fail, to avoid unnecessary string operations when the quoted etag matches directly.

Copilot uses AI. Check for mistakes.
var setNoneMatch = noneMatch != null && !noneMatch.isEmpty();
if (setNoneMatch) {
if (noneMatch.contains(WILDCARD_ETAG) || noneMatch.contains(WILDCARD) || noneMatch.contains(etag)) {
var unquotedEtag = etag.replace("\"", "");
Copy link

Copilot AI Nov 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic for creating unquotedEtag is duplicated on lines 371 and 396. Consider extracting this to a helper method or computing it once at the beginning of the method (line 358-359 area) to avoid duplication.

Copilot uses AI. Check for mistakes.
@afranken afranken merged commit 2e7dca9 into main Nov 3, 2025
12 checks passed
@afranken afranken deleted the 4.10.0-maintenance branch November 3, 2025 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants